package com.ruoyi.ems.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 订单对象 ems_order
 * 
 * @author sh
 * @date 2023-12-11
 */
@Data
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date creatTime;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date changeTime;

    /** 订单价格 */
    @Excel(name = "订单价格")
    private Integer totalPrice;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderCode;

    /** 回调时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "回调时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date gmtCallback;

    /** 取餐码 */
    @Excel(name = "取餐码")
    private String orderInfo;

    /** 文本提示 */
    @Excel(name = "文本提示")
    private String errMsg;

    /** 下单电话号码 */
    @Excel(name = "下单电话号码")
    private String account;

    private Staff staff;

    /** 订单状态   * 订单状态
     * SUCCESS =成功
     * FAILED =失败
     * IN_PROCESS = 支付成功，订单同步中
     * ERROR = 支付成功，订单同步异常
     * WAIT_FOR = 订单同步成功，等待状态更新
     * NON_PAYMENT = 未支付 */
    @Excel(name = "订单状态   * 订单状态* SUCCESS =成功* FAILED =失败* IN_PROCESS = 支付成功，订单同步中* ERROR = 支付成功，订单同步异常 * WAIT_FOR = 订单同步成功，等待状态更新 * NON_PAYMENT = 未支付")
    private String orderStatus;

    private Boolean showImg;

    /** 用户openId */
    @Excel(name = "用户openId")
    private Long openId;

    /** 商品图片 */
    @Excel(name = "商品图片")
    private String productImg;

    /** 商品数量 */
    @Excel(name = "商品数量")
    private String productNum;
    /** 商品规格名称 */
    @Excel(name = "商品规格名称")
    private String productSku;
    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 乐观锁 */
    private Long version;

    // 商品编号
    private String productCode;
    private String upstreamOrderNumber;
    private String StaffName;

    /** 卡劵：coupons  饮品：goods */
    @Excel(name = "卡劵：coupons  饮品：goods")
    private String type;
    // 最大回调次数，达到最大，直接失败
    private Integer callbackCount;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCreatTime(Date creatTime) 
    {
        this.creatTime = creatTime;
    }

    public Date getCreatTime() 
    {
        return creatTime;
    }
    public void setChangeTime(Date changeTime) 
    {
        this.changeTime = changeTime;
    }

    public Date getChangeTime() 
    {
        return changeTime;
    }
    public void setTotalPrice(Integer totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public Integer getTotalPrice()
    {
        return totalPrice;
    }
    public void setOrderCode(String orderCode) 
    {
        this.orderCode = orderCode;
    }

    public String getOrderCode() 
    {
        return orderCode;
    }
    public void setGmtCallback(Date gmtCallback) 
    {
        this.gmtCallback = gmtCallback;
    }

    public Date getGmtCallback() 
    {
        return gmtCallback;
    }
    public void setOrderInfo(String orderInfo) 
    {
        this.orderInfo = orderInfo;
    }

    public String getOrderInfo() 
    {
        return orderInfo;
    }
    public void setErrMsg(String errMsg) 
    {
        this.errMsg = errMsg;
    }

    public String getErrMsg() 
    {
        return errMsg;
    }
    public void setAccount(String account) 
    {
        this.account = account;
    }

    public String getAccount() 
    {
        return account;
    }
    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }

    public void setVersion(Long version)
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }


}
